package practice;
/*
题目：将一个正整数分解质因数。例如：输入90,打印出90=2*3*3*5。
程序分析：对n进行分解质因数，应先找到一个最小的质数k，然后按下述步骤完成：
(1)如果这个质数恰等于n，则说明分解质因数的过程已经结束，打印出即可。
(2)如果n<>k，但n能被k整除，则应打印出k的值，并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除，则用k+1作为k的值,重复执行第一步。

 */
import java.util.ArrayList;
import java.util.Scanner;

public class practice04 {
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        System.out.println("请输入一个数：");
        int num =s.nextInt();
        int aa=num;
        int flag=0;
        ArrayList<Integer> list = new ArrayList<Integer>();
        if(num==1) {
            System.out.println("此数不能进行分解");
        }
        for(int k=0;k<num;k++) {
            for (int i = 2; i <= num; i++) {
                for (int j = 2; j < i; j++) {
                    if (i % j == 0) {
                        flag = 1;
                    }
                }
                if (flag == 0) {
                    if (num == i) {
                        list.add(i);
                        num=num/i;
                        break;
                    } else if (num % i == 0) {
                        num = num / i;
                        list.add(i);
                    }
                }
                flag = 0;
            }
        }
        for(int m=0;m<list.size();m++){
            if(m==0){
                System.out.print(aa+"="+list.get(m));
            }
            else if(m==list.size()-1){
                System.out.println("*"+list.get(m));
            } else{
                System.out.print("*"+list.get(m));
            }
        }
    }
}
